•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
r5 vs r6
1 1
[목차]
2 2
== 개요 ==
3 3
리눅스 명령어를 정리한 리스트 문서이다.
4 4
5 5
== 디렉토리/파일 관련 ==
6 6
7 7
=== ls ===
8 8
ls는 list의 약자로, 특정 디렉토리 내의 내용을 출력해주는 역할을 한다.
9 9
10 10
|| 옵션 || 전체 || 설명 ||
11 11
|| -l || || 각 파일/디렉토리에 대한 상세한 설명을 테이블 형태로 출력한다. ||
12 12
|| -a || --all || 숨김 파일 또는 숨김 디렉토리[* {{{.}}}으로 시작하는 이름]를 표시한다.[br]단, {{{.}}}[* 현재 디렉토리]나 {{{..}}}[* 부모 디렉토리]도 같이 표시되는 단점이 있다. ||
13 13
|| -1 || || 파일이나 디렉토리를 한 줄에 하나씩 출력한다. ||
14 14
|| -t || || 수정일 순으로 출력한다. ||
15 15
16 16
====# 결과 예시 #====
17 17
{{{# ls -al
18 18
total 68
19 19
dr-xr-xr-x. 17 root root 262 Jan 16 15:22 .
20 20
dr-xr-xr-x. 17 root root 262 Jan 16 15:22 ..
21 21
-rw-r--r-- 1 root root 0 Jan 8 14:30 .autorelabel
22 22
lrwxrwxrwx. 1 root root 7 Jan 8 14:10 bin -> usr/bin
23 23
dr-xr-xr-x. 5 root root 4096 Jan 8 14:14 boot
24 24
drwxr-xr-x 18 root root 3240 Jan 16 15:21 dev
25 25
drwxr-xr-x. 73 root root 8192 Jan 16 15:21 etc
26 26
drwxr-xr-x. 3 root root 34 Jan 8 14:38 home
27 27
...}}}
28 28
29 29
=== cat ===
30 30
파일의 내용을 터미널 창에 출력할 때 사용하는 명령어입니다.
31 31
> cat file1
32 32
33 33
====# 결과 예시 #====
34 34
{{{# cat file1
35 35
test123####
36 36
test3641@#!!
37 37
tteesstt}}}
38 38
39 39
=====# {{{#f00 사용 시 주의 사항}}} #=====
40 40
서버 점검 중 수 기가바이트(GB)가 넘는 대용량 로그 파일을 cat으로 열면 터미널이 멈추거나 시스템 성능이 저하될 수 있습니다.
41 41
42 42
more 를 사용해 한 페이지씩 확인 할 수 있도록 하자
43 43
> cat file1 | more
44 44
45 45
46 46
== 정보 표시관련 ==
47 47
48 48
=== ifconfig ===
49 49
Interface Configuration의 약자로, 리눅스나 유닉스 계열 운영체제에서 네트워크 인터페이스의 설정 상태를 확인하거나 변경할 때 사용하는 가장 기본적인 명령줄 도구입니다.
50 50
51 51
IP 주소 확인, MAC 주소 확인, 인터페이스 확인
52 52
> ifconfig
53 53
54 54
|| -a || 활성화되지 않은 인터페이스를 포함하여 모든 정보를 표시합니다. || ifconfig -a ||
55 55
|| [인터페이스] up/down || 특정 네트워크 인터페이스를 활성화/비활성화 합니다. || ifconfig eth0 up [br] ifconfig eth0 down ||
56 56
|| [인터페이스] || 특정 네트워크 인터페이스 만 조회 할 수 있습니다. || ifconfig eth0 ||
57 57
58 58
====# 결과 예시 #====
59 59
{{{eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
60 60
inet 192.168.0.15 netmask 255.255.255.0 broadcast 192.168.0.255
61 61
ether 00:0c:29:ab:cd:ef txqueuelen 1000 (Ethernet)
62 62
RX packets 12345 bytes 10485760 (10.0 MiB)
63 63
TX packets 6789 bytes 5242880 (5.0 MiB)}}}
64 64
'''eth0''' : 네트워크 인터페이스의 이름입니다. (요즘은 ens33, eno1 등으로 나오기도 하고 Bond 설정 시 bond0, bond1등으로 나온다.)
65 65
'''inet''' : 현재 할당된 IPv4 주소입니다.
66 66
'''netmask''' : 네트워크의 범위를 결정하는 서브넷 마스크입니다.
67 67
'''ether''' : 랜카드의 물리적 주소인 MAC 주소입니다.
68 68
'''RX/TX''' packets : 수신(Receive) 및 송신(Transmit)된 데이터 통계입니다. 여기서 에러(errors) 숫자가 높다면 네트워크 선이나 장비 결함을 의심해볼 수 있습니다.
69 69
70 70
=====# 발생할 수 있는 Error또는 Drop #=====
71 71
{{{RX packets 5021 bytes 625410 (610.7 KiB)
72 72
RX errors 154 dropped 892 overruns 12 frame 154
73 73
TX packets 900 bytes 85000 (83.0 KiB)
74 74
TX errors 45 dropped 0 overruns 0 carrier 45 collisions 20}}}
75 75
'''RX Errors''' : 외부 물리장비나 서버 리소스 부족 시 발생 (랜 케이블 노후, 스위치 포트 고장)
76 76
'''RX Drop''' : OS 방화벽 차단, 메모리/버퍼 부족
77 77
'''TX Errors/Drop''' : 서버에서 데이터를 내보낼 때 발생하는 문제 (스위치 설정 불일치 또는 네트워크 전송 경로 물리적 장애)
78 78
'''Overruns''' : 데이터가 쏟아지는 속도를 하드웨어나 커널이 못 따라갈 때 (고대역폭 데이터 급증 또는 커널 네이트워크 큐 사이즈 작음)
79 79
80 80
=== route ===
81 81
내 서버에서 나가는 데이터가 어느 길(Gateway)을 거쳐 가는지 확인하는 지도입니다.
82 82
83 83
*관련 옵션*
84 84
> 주소를 이름 대신 IP로 보여줌 [br] route -n
85 85
86 86
> 좀 더 상세하게 출력 됨 [br] route -v
87 87
88 88
> 라우팅 관련 추가/삭제 설정 시 사용한다. [br] # route add [br] # route del
89 89
90 90
====# 결과 예시 #====
91 91
{{{# route -n
92 92
Kernel IP routing table
93 93
Destination Gateway Genmask Flags Metric Ref Use Iface
94 94
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0
95 95
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
96 96
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0}}}
97 97
98 98
'''Destination 0.0.0.0''' : 외부 인터넷으로 나가는 모든 경로 (기본 통로)
99 99
'''Gateway''' : 우리 집 '대문' 역할을 하는 장비 주소 (공유기나 라우터 IP)
100 100
'''Iface''' : 데이터가 실제로 나가는 랜카드 이름 (예: eth0)
101 101
102 102
=== ntpd ===
103 103
서버의 시간이 표준 시간과 얼마나 잘 맞고 있는지, 어떤 외부 시간 서버로부터 정보를 받아오고 있는지 상태를 조회하는 명령어입니다.
104 104
> ntpq -p
105 105
106 106
107 107
====# 결과 예시 #====
108 108
{{{remote refid st t when poll reach delay offset jitter
109 109
==============================================================================
110 110
*time.google.com .GOOG. 1 u 156 128 377 2.105 -0.015 0.032
111 111
+time.bora.net 204.123.2.5 2 u 89 128 377 15.420 1.520 0.110}}}
112 112
113 113
=====# 발생 할 수 있는 에러/오류 #=====
114 114
ntpq: read: Connection refused
115 115
원인: 내 서버에서 ntpd(NTP 서비스)가 실행 중이지 않을 때 발생합니다.
116 116
조치: systemctl start ntpd
117 117
118 118
remote 항목 앞에 아무 기호(*, +)가 없을 때
119 119
원인: 시간 서버와 연결은 되지만 패킷을 주고받는 데 문제가 있거나, 이제 막 서비스를 시작해서 동기화할 시간이 더 필요한 경우입니다.
120 120
조치: 5~10분 정도 기다려보고, 계속 그대로라면 ntp(ntp.conf) 설정 파일 확인, 파일도 이상이 없다면 route 정보 확인이 필요하다.
121 121
122 122
=== ping ===
123 123
특정 장비(서버, PC 등)가 현재 살아있는지, 그리고 나와의 통신 속도는 어느 정도인지 확인하는 네트워크 진단 도구입니다.
124 124
> ping 8.8.8.8
125 125
126 126
|| 옵션 || 전체 || 설명 ||
127 127
|| -c [횟수] || 지정한 횟수만큼만 패킷을 전송하고 종료합니다. || ping -c 4 8.8.8.8 ||
128 128
|| -I [인터페이스명|IP] || 패킷을 보낼 인터페이스 또는 출발지 IP 주소를 지정합니다. || ping -I eth0 8.8.8.8 ||
129 129
130 130
====# 결과 예시 #====
131 131
{{{PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
132 132
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=32.5 ms
133 133
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=31.2 ms
134 134
64 bytes from 8.8.8.8: icmp_seq=3 ttl=115 time=30.8 ms
135 135
136 136
--- 8.8.8.8 ping statistics ---
137 137
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
138 138
rtt min/avg/max/mdev = 30.812/31.503/32.511/0.732 ms}}}
139 139
140 140
=====# 발생 할 수 있는 에러/오류 #=====
141 141
Destination Host Unreachable
142 142
의미 : 상대방에게 가는 길을 아예 못 찾을 때 발생합니다.
143 143
원인 : 내 컴퓨터의 게이트웨이(route) 설정이 틀렸거나, 상대방 주소가 잘못된 경우.
144 144
조치1 : 내 IP가 정상 할당 되었는지 확인
145 145
조치2 : route -n 명령어로 Default Gateway(0.0.0.0)가 올바르게 설정되어 있는지 확인합니다.
146 146
조치3 : 랜 케이블이 제대로 꽂혀 있는지, 스위치 허브의 포트에 불이 들어와 있는지 확인합니다.
147 147
148 148
Request Timeout (타임아웃)
149 149
의미 : 신호는 보냈으나 대답이 없을 때 발생합니다.
150 150
원인 : 상대방 서버가 꺼져 있거나, 상대방의 **방화벽(Firewall)**이 핑 신호(ICMP)를 차단하고 있는 경우입니다.
151 151
조치1 : 상대방 서버의 방화벽(iptables 등)에서 ICMP(Ping) 응답이 차단되어 있는지 확인하고 허용합니다.
152 152
조치2 : 상대방 서버가 실제로 켜져 있는지(Power On) 확인합니다.
153 153
154 154
Unknown Host
155 155
의미 : 입력한 도메인 주소(예: naver.com)를 찾을 수 없을 때 발생합니다.
156 156
원인 : DNS 설정이 잘못되어 주소를 IP로 변환하지 못하는 상태입니다.
157 157
조치1 : /etc/resolv.conf 파일(Linux)에서 DNS 서버 주소(예: 8.8.8.8)가 맞게 등록되어 있는지 확인합니다.
158 158
조치2 : /etc/hosts 파일에 엉뚱한 IP 주소가 강제로 고정되어 있는지 확인합니다.
159 159
160 160
=== netstat ===
161 161
서버의 네트워크 연결 상태, 라우팅 테이블, 인터페이스 통계 등을 보여주는 강력한 네트워크 진단 도구입니다.
162 162
> netstat
163 163
164 164
|| 옵션 || 전체 || 설명 ||
165 165
|| -a || 모든 소켓(연결 및 대기)을 표시합니다. || `netstat -a` ||
166 166
|| -n || 주소와 포트 번호를 이름 대신 숫자로 표시합니다. || `netstat -an` ||
167 167
|| -p || 해당 포트를 사용하는 프로그램 이름과 PID를 표시합니다. || `netstat -ap` ||
168 168
|| -t || TCP 프로토콜만 표시합니다. || `netstat -at` ||
169 169
|| -l || 연결 대기 중인(Listen) 포트만 표시합니다. || `netstat -nl` ||
170 170
171 171
====# 결과 예시 #====
172 172
{{{tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx: master
173 173
tcp6 0 0 :::80 :::* LISTEN 1234/nginx: master}}}
174 174
175 175
176 176
=== df ===
177 177
마운트된 디스크 사용량을 출력한다. HP-UX의 경우 df와 bdf가 구분되어 있으며, bdf가 우리가 현재 알고있는 df의 형식을 출력한다.
178 178
> df [옵션] [파일]
179 179
|| 옵션 || 설명 ||
180 180
|| -i, --inodes || i-node 사용량을 대신 표시한다. ||
181 181
|| -h, --human-readable || 읽기 쉽도록 1,024를 [[거듭제곱]]한 단위를 사용한다. (예시: 1023M)||
182 182
183 183
====# 결과 예시 #====
184 184
{{{# df -h
185 185
Filesystem Size Used Avail Use% Mounted on
186 186
devtmpfs 5.8G 0 5.8G 0% /dev
187 187
tmpfs 5.9G 0 5.9G 0% /dev/shm
188 188
tmpfs 5.9G 8.9M 5.8G 1% /run
189 189
tmpfs 5.9G 0 5.9G 0% /sys/fs/cgroup
190 190
/dev/nvme0n1p4 50G 1.5G 49G 3% /
191 191
/dev/nvme0n1p2 1014M 125M 890M 13% /boot
192 192
/dev/nvme0n1p1 200M 12M 189M 6% /boot/efi
193 193
/dev/nvme0n1p5 182G 105M 182G 1% /home
194 194
tmpfs 1.2G 0 1.2G 0% /run/user/1000}}}
195 195
196 196
197 197
=== ps ===
198 198
현재 시스템에서 실행 중인 프로세스의 목록과 상태를 확인하는 명령어입니다.
199 199
> ps
200 200
|| 옵션 || 설명 ||
201 201
|| -e || 시스템의 모든 프로세스를 표시합니다. || ps -e ||
202 202
|| -f || 상세한 정보를 포함하는 풀 포맷으로 표시합니다. || ps -ef ||
203 203
204 204
====# 결과 예시 #====
205 205
{{{# ps -ef
206 206
UID PID PPID C STIME TTY TIME CMD
207 207
root 1 0 0 Jan20 ? 00:00:05 /usr/lib/systemd/systemd
208 208
root 1234 1 0 10:30 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
209 209
apache 1235 1234 0 10:30 ? 00:00:02 /usr/sbin/httpd -DFOREGROUND
210 210
root 3052 3010 0 14:20 pts/0 00:00:00 ps -ef
211 211
...}}}
212 212
213 213
214 214
215 215
... ...